//
//  ZYCTeaAttendanceStatisticsView.m
//  ZDSC
//
//  Created by 张威 on 2021/10/22.
//

#import "ZYCTeaAttendanceStatisticsView.h"
#import "ZYCTeaAttendanceStatisticsHeaderView.h"
#import "ZYCTeaAttendanceStatisticsAttendanceCell.h"
#import "ZYCTeaAttendanceStatisticsLeaveCell.h"
#import "ZYCTeaAttendanceStatisticsOvertimeCell.h"
#import "ZYCTeaLeaveStatisticsModel.h"



@interface ZYCTeaAttendanceStatisticsView ()<UITableViewDelegate,UITableViewDataSource,ZYCTeaAttendanceStatisticsHeaderViewDelegate>

@property (nonatomic, strong) UITableView *tableView;
@property (nonatomic, strong) ZYCTeaAttendanceStatisticsHeaderView *headerView;
@property (nonatomic, strong) NSArray *dataSource;


@end
@implementation ZYCTeaAttendanceStatisticsView

- (void)setModel:(ZYCTeaLeaveStatisticsModel *)model{
    _model = model;
    [self.tableView reloadData];
}
- (void)setHeaderString:(NSString *)headerString{
    _headerString = headerString;
    self.headerView.dateString = headerString;
}
- (instancetype)initWithFrame:(CGRect)frame{
    self = [super initWithFrame:frame];
    if (self) {
        [self addSubview:self.tableView];
        [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
            make.edges.equalTo(self);
        }];
        self.tableView.tableHeaderView = self.headerView;
    }
    return self;
}




#pragma mark - UITableViewDelegate,UITableViewDataSource
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return self.dataSource.count;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 1;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath.section == 0) {// 考勤统计
        ZYCTeaAttendanceStatisticsAttendanceCell *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([ZYCTeaAttendanceStatisticsAttendanceCell class]) forIndexPath:indexPath];
        cell.header = self.dataSource[indexPath.section];
        cell.model = self.model;
        [cell setSectionCircularTableView:tableView withIndexPath:indexPath];
        return cell;
    }else    if (indexPath.section == 1) { // 请假统计
        ZYCTeaAttendanceStatisticsLeaveCell *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([ZYCTeaAttendanceStatisticsLeaveCell class]) forIndexPath:indexPath];
        cell.header = self.dataSource[indexPath.section];
        cell.model = self.model;
        [cell setSectionCircularTableView:tableView withIndexPath:indexPath];
        return cell;
    }else{// 加班统计
        ZYCTeaAttendanceStatisticsOvertimeCell *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([ZYCTeaAttendanceStatisticsOvertimeCell class]) forIndexPath:indexPath];
        cell.header = self.dataSource[indexPath.section];
        cell.model = self.model;
        [cell setSectionCircularTableView:tableView withIndexPath:indexPath];
        return cell;
    }

}


-(CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
    if (section == 0) {
        return 10.0f;
    }
    return 5.0f;
}

-(CGFloat) tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
    return 0.01f;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    if (indexPath.section == 0 || indexPath.section == 2) {
        return 180.0f;
    }
    return 275.0f;
}

- (nullable UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
    return [UIView new];
}

- (nullable UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
    return [UIView new];
}


#pragma mark - ZYCTeaAttendanceStatisticsHeaderViewDelegate
- (void)teaAttendanceStatisticsHeaderViewDidExchangedMonth:(NSString *)month{

    if ([self.delegate respondsToSelector:@selector(teaAttendanceStatisticsViewDidExchangeMonth:)]) {
        [self.delegate teaAttendanceStatisticsViewDidExchangeMonth:month];
    }
}



#pragma mark - getters

- (NSArray *)dataSource {
    if (!_dataSource) {
        _dataSource = @[@"考勤统计（次）",@"请假统计（天）",@"加班统计（小时）"];
    }
    return _dataSource;
}

- (UITableView *)tableView {
    if (!_tableView) {
        _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
        _tableView.delegate = self;
        _tableView.dataSource = self;
        _tableView.showsVerticalScrollIndicator = NO;
        _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
        [_tableView registerClass:[ZYCTeaAttendanceStatisticsAttendanceCell class] forCellReuseIdentifier:NSStringFromClass([ZYCTeaAttendanceStatisticsAttendanceCell class])];
        [_tableView registerClass:[ZYCTeaAttendanceStatisticsLeaveCell class] forCellReuseIdentifier:NSStringFromClass([ZYCTeaAttendanceStatisticsLeaveCell class])];
        [_tableView registerClass:[ZYCTeaAttendanceStatisticsOvertimeCell class] forCellReuseIdentifier:NSStringFromClass([ZYCTeaAttendanceStatisticsOvertimeCell class])];
    }
    return _tableView;
}


- (ZYCTeaAttendanceStatisticsHeaderView *)headerView {
    if (!_headerView) {
        _headerView = [[ZYCTeaAttendanceStatisticsHeaderView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 46.0f)];
        _headerView.delegate = self;
    }
    return _headerView;
}
@end
